// 给定一个由 整数 组成的 非空 数组所表示的非负整数，在该数的基础上加一。

// 最高位数字存放在数组的首位， 数组中每个元素只存储单个数字。

// 你可以假设除了整数 0 之外，这个整数不会以零开头。

 
int* plusOne(int* digits, int digitsSize, int* returnSize) 
{
    {
        for (int i = digitsSize - 1; i >= 0; i--) 
        {
			if (digits[i] != 9)
            {
                digits[i]++;
                *returnSize = digitsSize; // 设置返回数组的大小
				return digits;
			} 
			digits[i] = 0;
		}
        //跳出for循环，说明数字全部是9
		int* temp = (int*)malloc((digitsSize + 1) * sizeof(int));
    temp[0] = 1; // 最高位为1
    for (int i = 1; i < digitsSize + 1; i++) 
    {
        temp[i] = 0; // 其余位为0
    }
    *returnSize = digitsSize + 1; // 更新返回大小
    return temp; // 返回新数组
    }
}